SetFactory("OpenCASCADE");

cl__1 = 1e+22;
Point(1) = {0, 0, 1.889999, cl__1};
Point(2) = {0, 5.190003, -0.419998, cl__1};
Point(3) = {5.190003, 0, -0.419998, cl__1};
Point(4) = {0, 5.790003, 0.124997, cl__1};
Point(5) = {5.790003, 0, 0.124996, cl__1};
Point(6) = {0, 0, 2.519999, cl__1};
Point(7) = {5.790003, 0, 0.124996, cl__1};
Point(8) = {0, 5.790003, 0.124997, cl__1};
Point(9) = {5.190003, 0, -0.419998, cl__1};
Point(10) = {0, 5.190003, -0.419998, cl__1};
Point(11) = {-0.00144442860864, 6.32669169634, -0.468221677122, cl__1};
Point(12) = {6.32669119487, -0.00144436727504, -0.468222132545, cl__1};
Point(13) = {5.726928676669999, 0.0013783813735, -1.01300171241, cl__1};
Point(14) = {0.00137900597926, 5.72693079668, -1.01299978736, cl__1};
p1 = newp;
Point(p1 + 1) = {0.0006569120000000002, 0.3382637146666667, 1.871709010666667};
Point(p1 + 2) = {0.001583296000000001, 0.6648189973333334, 1.839487085333333};
Point(p1 + 3) = {0.002494224, 0.979288056, 1.794739688};
Point(p1 + 4) = {0.003104768000000001, 1.281293098666667, 1.738873282666667};
Point(p1 + 5) = {0.00313, 1.570456333333333, 1.673294333333333};
Point(p1 + 6) = {0.00257896, 1.846575464, 1.599343304};
Point(p1 + 7) = {0.0017812, 2.109687938666667, 1.518239698666667};
Point(p1 + 8) = {0.0009347839999999997, 2.358318696, 1.431855544};
Point(p1 + 9) = {0.0002630079999999999, 2.590348712, 1.342314248};
Point(p1 + 10) = {0, 2.821273, 1.243863};
Point(p1 + 11) = {0.0003186453333333339, 3.061524808, 1.131831784};
Point(p1 + 12) = {0.0009958826666666665, 3.309140584, 1.005278072};
Point(p1 + 13) = {0.001688477333333333, 3.563218498666667, 0.8630497466666666};
Point(p1 + 14) = {0.002217879999999999, 3.82275328, 0.7039544240000002};
Point(p1 + 15) = {0.002437111111111111, 4.086378888888889, 0.5269855555555556};
Point(p1 + 16) = {0.002283256888888889, 4.291782815111111, 0.3775459004444444};
Point(p1 + 17) = {0.001871664, 4.506601871999999, 0.2094771680000002};
Point(p1 + 18) = {0.00129328711111111, 4.729081376888889, 0.02142990755555552};
Point(p1 + 19) = {0.0006390808888888893, 4.957466647111111, -0.1879453315555553};
Spline(1) = {1, p1 + 1, p1 + 2, p1 + 3, p1 + 4, p1 + 5, p1 + 6, p1 + 7, p1 + 8, p1 + 9, p1 + 10, p1 + 11, p1 + 12, p1 + 13, p1 + 14, p1 + 15, p1 + 16, p1 + 17, p1 + 18, p1 + 19, 2};
p2 = newp;
Point(p2 + 1) = {0.414805736, 5.173363791999999, -0.419790304};
Point(p2 + 2) = {0.8115957946666668, 5.126125192, -0.4199106933333333};
Point(p2 + 3) = {1.211402221333333, 5.046658885333333, -0.4200702106666667};
Point(p2 + 4) = {1.601362029333333, 4.936851450666666, -0.420185688};
Point(p2 + 5) = {1.984660333333333, 4.795509999999999, -0.4200283333333333};
Point(p2 + 6) = {2.358172994666667, 4.623880247999999, -0.4197827306666667};
Point(p2 + 7) = {2.713852184, 4.424936624, -0.419734712};
Point(p2 + 8) = {3.051288109333333, 4.199255175999999, -0.4198062613333333};
Point(p2 + 9) = {3.370070978666667, 3.947411952, -0.4199193626666667};
Point(p2 + 10) = {3.669791, 3.669983, -0.419996};
Point(p2 + 11) = {3.947620941333334, 3.369272085333333, -0.4200117866666667};
Point(p2 + 12) = {4.200246210666666, 3.048486162666667, -0.4200018133333334};
Point(p2 + 13) = {4.426525976, 2.709556064, -0.41997728};
Point(p2 + 14) = {4.625319405333332, 2.354412621333334, -0.4199493866666667};
Point(p2 + 15) = {4.795485666666667, 1.984986666666667, -0.4199293333333333};
Point(p2 + 16) = {4.9355972304, 1.6059124832, -0.419973136};
Point(p2 + 17) = {5.045911776533334, 1.214745678933334, -0.4199925546666667};
Point(p2 + 18) = {5.126802586133334, 0.8078090303999999, -0.4200260026666667};
Point(p2 + 19) = {5.1718185776, 0.4313495488000003, -0.4199393504};
Spline(2) = {2, p2 + 1, p2 + 2, p2 + 3, p2 + 4, p2 + 5, p2 + 6, p2 + 7, p2 + 8, p2 + 9, p2 + 10, p2 + 11, p2 + 12, p2 + 13, p2 + 14, p2 + 15, p2 + 16, p2 + 17, p2 + 18, p2 + 19, 3};
p3 = newp;
Point(p3 + 1) = {4.945690514666667, 0.0005394586666666667, -0.17671024};
Point(p3 + 2) = {4.699469277333334, 0.001360789333333334, 0.04725079999999998};
Point(p3 + 3) = {4.452786216, 0.002200824, 0.25269296};
Point(p3 + 4) = {4.207088258666666, 0.002796394666666667, 0.4404240799999999};
Point(p3 + 5) = {3.963822333333333, 0.002884333333333333, 0.6112519999999999};
Point(p3 + 6) = {3.724234957333334, 0.002459117333333333, 0.7660576426666665};
Point(p3 + 7) = {3.489307165333333, 0.001786925333333334, 0.9057723413333332};
Point(p3 + 8) = {3.260055128, 0.001012016, 1.031296576};
Point(p3 + 9) = {3.038423261333334, 0.0003185946666666665, 1.143099922666666};
Point(p3 + 10) = {2.821627666666667, 3.333333333333358e-07, 1.243698333333333};
Point(p3 + 11) = {2.573518056, 0.0002477146666666671, 1.348858301333334};
Point(p3 + 12) = {2.311585021333333, 0.0008757039999999997, 1.448746077333333};
Point(p3 + 13) = {2.035716117333333, 0.001628608, 1.542108813333333};
Point(p3 + 14) = {1.745913544, 0.002264112, 1.627605792};
Point(p3 + 15) = {1.442246333333334, 0.002582666666666667, 1.703849333333333};
Point(p3 + 16) = {1.195120266666666, 0.002497845333333333, 1.756188706666667};
Point(p3 + 17) = {0.9271962000000001, 0.002128896, 1.80325808};
Point(p3 + 18) = {0.6386105333333333, 0.001544090666666666, 1.842772733333333};
Point(p3 + 19) = {0.3294996666666672, 0.0008117013333333342, 1.872447946666667};
Spline(3) = {3, p3 + 1, p3 + 2, p3 + 3, p3 + 4, p3 + 5, p3 + 6, p3 + 7, p3 + 8, p3 + 9, p3 + 10, p3 + 11, p3 + 12, p3 + 13, p3 + 14, p3 + 15, p3 + 16, p3 + 17, p3 + 18, p3 + 19, 1};
p4 = newp;
Point(p4 + 1) = {0.460441624, 5.771746456, 0.124976776};
Point(p4 + 2) = {0.9053719040000001, 5.719037746666666, 0.1252518};
Point(p4 + 3) = {1.349896874666667, 5.630755039999999, 0.1252530586666667};
Point(p4 + 4) = {1.786159056, 5.507776426666666, 0.1251196506666667};
Point(p4 + 5) = {2.214009333333333, 5.349953333333333, 0.1250256666666666};
Point(p4 + 6) = {2.628756538666666, 5.159006490666666, 0.1250109813333333};
Point(p4 + 7) = {3.025217056, 4.937240832, 0.124995704};
Point(p4 + 8) = {3.402304437333334, 4.685385461333333, 0.1249822026666667};
Point(p4 + 9) = {3.758932234666667, 4.404169482666666, 0.1249728453333333};
Point(p4 + 10) = {4.094014, 4.094322, 0.12497};
Point(p4 + 11) = {4.403936824, 3.759136824, 0.1249709253333333};
Point(p4 + 12) = {4.685277471999999, 3.402274272, 0.1249735626666667};
Point(p4 + 13) = {4.937234008, 3.025013208, 0.124981304};
Point(p4 + 14) = {5.159004496, 2.628632496, 0.1249975413333333};
Point(p4 + 15) = {5.349787, 2.214411, 0.1250256666666667};
Point(p4 + 16) = {5.5067043408, 1.7910495376, 0.1251281008};
Point(p4 + 17) = {5.6295214064, 1.3558833008, 0.1252371397333333};
Point(p4 + 18) = {5.719921006044444, 0.900379282311111, 0.1253310753777778};
Point(p4 + 19) = {5.769982660799999, 0.4818307456000002, 0.124990976};
Spline(4) = {4, p4 + 1, p4 + 2, p4 + 3, p4 + 4, p4 + 5, p4 + 6, p4 + 7, p4 + 8, p4 + 9, p4 + 10, p4 + 11, p4 + 12, p4 + 13, p4 + 14, p4 + 15, p4 + 16, p4 + 17, p4 + 18, p4 + 19, 5};
p5 = newp;
Point(p5 + 1) = {5.759995703125, -2.864250000000001e-06, 0.09775082474999999};
Point(p5 + 2) = {5.729990195, -4.914000000000001e-06, 0.070504658};
Point(p5 + 3) = {5.699986299375, -6.234750000000001e-06, 0.04325758825000001};
Point(p5 + 4) = {5.66998384, -6.912000000000001e-06, 0.01600970399999999};
Point(p5 + 5) = {5.639982640625, -7.031250000000002e-06, -0.01123890624999999};
Point(p5 + 6) = {5.609982525, -6.678e-06, -0.038488154};
Point(p5 + 7) = {5.579983316875, -5.937750000000001e-06, -0.06573795074999997};
Point(p5 + 8) = {5.54998484, -4.895999999999999e-06, -0.09298820799999999};
Point(p5 + 9) = {5.519986918125, -3.638250000000001e-06, -0.12023883725};
Point(p5 + 10) = {5.489989375, -2.25e-06, -0.14748975};
Point(p5 + 11) = {5.459992034375, -8.167500000000021e-07, -0.17474085775};
Point(p5 + 12) = {5.42999472, 5.760000000000026e-07, -0.201992072};
Point(p5 + 13) = {5.399997255625, 1.842749999999997e-06, -0.22924330425};
Point(p5 + 14) = {5.369999465, 2.897999999999998e-06, -0.256494466};
Point(p5 + 15) = {5.340001171875, 3.656249999999997e-06, -0.28374546875};
Point(p5 + 16) = {5.3100022, 4.032000000000005e-06, -0.310996224};
Point(p5 + 17) = {5.280002373125, 3.939749999999999e-06, -0.33824664325};
Point(p5 + 18) = {5.250001515, 3.29399999999999e-06, -0.365496638};
Point(p5 + 19) = {5.219999449375, 2.009250000000002e-06, -0.3927461197500001};
Spline(5) = {5, p5 + 1, p5 + 2, p5 + 3, p5 + 4, p5 + 5, p5 + 6, p5 + 7, p5 + 8, p5 + 9, p5 + 10, p5 + 11, p5 + 12, p5 + 13, p5 + 14, p5 + 15, p5 + 16, p5 + 17, p5 + 18, p5 + 19, 3};
p6 = newp;
Point(p6 + 1) = {2.009250000000001e-06, 5.219999314, -0.392746126875};
Point(p6 + 2) = {3.294000000000001e-06, 5.250001272, -0.365496665};
Point(p6 + 3) = {3.939750000000002e-06, 5.280002048, -0.338246700625};
Point(p6 + 4) = {4.032000000000001e-06, 5.310001816, -0.31099632};
Point(p6 + 5) = {3.656250000000002e-06, 5.34000075, -0.283745609375};
Point(p6 + 6) = {2.898000000000002e-06, 5.369999024, -0.256494655};
Point(p6 + 7) = {1.842750000000002e-06, 5.399996812, -0.229243543125};
Point(p6 + 8) = {5.76e-07, 5.429994288, -0.20199236};
Point(p6 + 9) = {-8.167499999999979e-07, 5.459991626, -0.174741191875};
Point(p6 + 10) = {-2.249999999999997e-06, 5.489989, -0.147490125};
Point(p6 + 11) = {-3.638249999999999e-06, 5.519986584, -0.1202392456249999};
Point(p6 + 12) = {-4.895999999999998e-06, 5.549984552, -0.09298863999999996};
Point(p6 + 13) = {-5.937749999999996e-06, 5.579983078, -0.0657383943749999};
Point(p6 + 14) = {-6.677999999999995e-06, 5.609982336, -0.03848859500000001};
Point(p6 + 15) = {-7.031249999999993e-06, 5.6399825, -0.01123932812499995};
Point(p6 + 16) = {-6.911999999999994e-06, 5.669983744, 0.0160093200000001};
Point(p6 + 17) = {-6.234749999999997e-06, 5.699986242, 0.04325726312500006};
Point(p6 + 18) = {-4.913999999999986e-06, 5.729990168, 0.0705044150000001};
Point(p6 + 19) = {-2.864249999999991e-06, 5.759995696000001, 0.09775068937500009};
Spline(6) = {2, p6 + 1, p6 + 2, p6 + 3, p6 + 4, p6 + 5, p6 + 6, p6 + 7, p6 + 8, p6 + 9, p6 + 10, p6 + 11, p6 + 12, p6 + 13, p6 + 14, p6 + 15, p6 + 16, p6 + 17, p6 + 18, p6 + 19, 4};
p7 = newp;
Point(p7 + 1) = {0.0005014026666666667, 5.509488352, 0.3807586773333334};
Point(p7 + 2) = {0.001312901333333333, 5.228288256000001, 0.6156324586666666};
Point(p7 + 3) = {0.002160432, 4.947901184000001, 0.8306111679999999};
Point(p7 + 4) = {0.002769930666666667, 4.669820608, 1.026676629333333};
Point(p7 + 5) = {0.002867333333333333, 4.39554, 1.204810666666666};
Point(p7 + 6) = {0.002442282666666667, 4.126297968, 1.365998245333333};
Point(p7 + 7) = {0.001772688000000001, 3.863027904, 1.511230176};
Point(p7 + 8) = {0.00101244, 3.606742592, 1.641508216};
Point(p7 + 9) = {0.0003233279999999999, 3.359481309333333, 1.757383357333333};
Point(p7 + 10) = {0, 3.118155666666667, 1.861455666666667};
Point(p7 + 11) = {0.0002522986666666671, 2.843366738666666, 1.969712210666667};
Point(p7 + 12) = {0.0008913493333333331, 2.553178322666667, 2.072563058666667};
Point(p7 + 13) = {0.001653842666666667, 2.247473221333333, 2.168648829333333};
Point(p7 + 14) = {0.002292943999999999, 1.926228952, 2.256513568};
Point(p7 + 15) = {0.002604444444444445, 1.589525777777778, 2.334643222222222};
Point(p7 + 16) = {0.002501027555555555, 1.316201262222222, 2.387905673777778};
Point(p7 + 17) = {0.002106816, 1.02042816, 2.435430728};
Point(p7 + 18) = {0.001503868444444444, 0.7023647377777776, 2.474860134222222};
Point(p7 + 19) = {0.0007742435555555557, 0.3621692622222226, 2.503835641777778};
Spline(7) = {4, p7 + 1, p7 + 2, p7 + 3, p7 + 4, p7 + 5, p7 + 6, p7 + 7, p7 + 8, p7 + 9, p7 + 10, p7 + 11, p7 + 12, p7 + 13, p7 + 14, p7 + 15, p7 + 16, p7 + 17, p7 + 18, p7 + 19, 6};
p8 = newp;
Point(p8 + 1) = {0.3734820720000001, 0.0006384666666666667, 2.503010493333333};
Point(p8 + 2) = {0.7340336160000001, 0.001551653333333333, 2.471300226666667};
Point(p8 + 3) = {1.081272024, 0.00245484, 2.42636228};
Point(p8 + 4) = {1.414814688, 0.003063306666666667, 2.369690733333333};
Point(p8 + 5) = {1.734279, 0.003092333333333333, 2.302779666666666};
Point(p8 + 6) = {2.0394542, 0.002549704, 2.227054728};
Point(p8 + 7) = {2.33037244, 0.001761698666666667, 2.143812797333333};
Point(p8 + 8) = {2.605341764, 0.0009235519999999996, 2.055045312};
Point(p8 + 9) = {2.861914268, 0.0002575839999999997, 1.963015104};
Point(p8 + 10) = {3.1178525, 0, 1.861584};
Point(p8 + 11) = {3.385059798666667, 0.0003587786666666672, 1.745798698666667};
Point(p8 + 12) = {3.661291449333333, 0.001146549333333333, 1.614665749333334};
Point(p8 + 13) = {3.945595128, 0.002008136000000001, 1.466939490666667};
Point(p8 + 14) = {4.236900575999999, 0.002632344, 1.301353248};
Point(p8 + 15) = {4.534050555555556, 0.002801111111111111, 1.116641111111111};
Point(p8 + 16) = {4.767756980444445, 0.002551224888888889, 0.9594022248888887};
Point(p8 + 17) = {5.011868088000001, 0.002019408, 0.7830291680000001};
Point(p8 + 18) = {5.264721227555556, 0.001332423111111111, 0.5861117431111109};
Point(p8 + 19) = {5.524653748444445, 0.00061703288888889, 0.367239752888889};
Spline(8) = {6, p8 + 1, p8 + 2, p8 + 3, p8 + 4, p8 + 5, p8 + 6, p8 + 7, p8 + 8, p8 + 9, p8 + 10, p8 + 11, p8 + 12, p8 + 13, p8 + 14, p8 + 15, p8 + 16, p8 + 17, p8 + 18, p8 + 19, 5};
p9 = newp;
Point(p9 + 1) = {0, 0, 2.4885};
Point(p9 + 2) = {0, 0, 2.457};
Point(p9 + 3) = {0, 0, 2.4255};
Point(p9 + 4) = {0, 0, 2.394};
Point(p9 + 5) = {0, 0, 2.3625};
Point(p9 + 6) = {0, 0, 2.331};
Point(p9 + 7) = {0, 0, 2.2995};
Point(p9 + 8) = {0, 0, 2.268};
Point(p9 + 9) = {0, 0, 2.2365};
Point(p9 + 10) = {0, 0, 2.205};
Point(p9 + 11) = {0, 0, 2.1735};
Point(p9 + 12) = {0, 0, 2.142};
Point(p9 + 13) = {0, 0, 2.1105};
Point(p9 + 14) = {0, 0, 2.079};
Point(p9 + 15) = {0, 0, 2.0475};
Point(p9 + 16) = {0, 0, 2.016};
Point(p9 + 17) = {0, 0, 1.9845};
Point(p9 + 18) = {0, 0, 1.953};
Point(p9 + 19) = {0, 0, 1.9215};
Spline(9) = {6, p9 + 1, p9 + 2, p9 + 3, p9 + 4, p9 + 5, p9 + 6, p9 + 7, p9 + 8, p9 + 9, p9 + 10, p9 + 11, p9 + 12, p9 + 13, p9 + 14, p9 + 15, p9 + 16, p9 + 17, p9 + 18, p9 + 19, 1};

Curve Loop(1) = {7, 8, -4};
Surface(1) = {1};
Curve Loop(3) = {1, 2, 3};
Surface(2) = {3};
Curve Loop(5) = {1, 6, 7, 9};
Surface(3) = {5};
Curve Loop(7) = {3, -9, 8, 5};
Surface(4) = {7};
Curve Loop(9) = {2, -5, -4, -6};
Surface(5) = {9};
Surface Loop(1) = {1:5};
Volume(1) = {1};

Box(2) = {-0.1, -0.1, 1, 2.1, 2.1, 2.1};
Rectangle(100) = {0,0,-1, 5, 5};
Rotate{{1,0,0}, {0,0,-1}, Pi/2}{ Surface{100}; }
Rotate{{0,0,1}, {0,0,0}, Pi/4}{ Surface{100}; }
Translate{2,2,0}{ Surface{100}; }
BooleanFragments{ Volume{:};Delete; }{ Surface{:}; Delete; }
Recursive Delete{ Volume{4}; }
Recursive Delete{ Surface{:}; }
Transfinite Line{:} = 10;
Transfinite Surface{:};
Recombine Surface{:};
Transfinite Volume{:};
